#!/usr/local/bin/perl
package FTF;
use strict; use warnings;

my ($ax_ok,$cv_ok,$pd);

sub init_ftf
{
    ($ax_ok,$cv_ok,$pd)=@_;
}

sub is_okf
{
    require "imv_ft.pm";
    my $ft = `file -b '$_[0]'`;
    if($ax_ok){
	return $FT::FT_TAR   if($ft=~/ tar archive /i && &FT::is_available($FT::FT_TAR));
	return $FT::FT_ZIP   if($ft=~/^zip /i         && &FT::is_available($FT::FT_ZIP));
	return $FT::FT_RAR   if($ft=~/^rar /i         && &FT::is_available($FT::FT_RAR));
	return $FT::FT_GZIP  if($ft=~/^gzip /i        && &FT::is_available($FT::FT_GZIP));
	return $FT::FT_BZIP2 if($ft=~/^bzip2 /i       && &FT::is_available($FT::FT_BZIP));
	return $FT::FT_7ZIP  if($ft=~/^7-zip /i       && &FT::is_available($FT::FT_7ZIP));
	return $FT::FT_XZ    if($ft=~/^xz /i          && &FT::is_available($FT::FT_XZ));
    }
    if($cv_ok){
	return $FT::FT_PDF if($ft=~/^pdf /i        && &FT::is_available($FT::FT_PDF));
	return $FT::FT_PS  if($ft=~/^postscript /i && &FT::is_available($FT::FT_PS));
	return $FT::FT_EPS if($ft=~/^postscript /i && $ft =~ /eps$/i
			      && &FT::is_available($FT::FT_EPS));
    }
    foreach(glob("$pd/*")){
	(my $pf=$_)=~s/\.[^.]*$//;
	$pf=~s/^$pd\///;
	return $_ if($ft=~/$pf/i && -x $_);
    }
    return undef;
}

1;
